//
//  HJMinePresent.h
//  KaiChat
//
//  Created by lx on 2023/10/17.
//

#import <Foundation/Foundation.h>
#import "HJChatBlacklistModel.h"
 
NS_ASSUME_NONNULL_BEGIN


typedef NS_ENUM(NSInteger, HJNoticeSettingType) {
    HJNoticeSettingTypeIsOpen = 1,
    HJNoticeSettingTypePreview,
    HJNoticeSettingTypeSound,
    HJNoticeSettingTypeVibration
};

typedef NS_ENUM(NSInteger, HJAddWay) {
    HJAddWayBan = 1,
    HJAddWayUID,
    HJAddWayEmail,
};

@class HJUserModel;

@interface HJMinePresent : NSObject


+ (void)loginWithAccount:(NSString *)account password:(NSString *)password complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)emailCodeLoginWithEmail:(NSString *)email code:(NSString *)code complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)appleLoginWithAppleUserId:(NSString *)appleUserId token:(NSString *)token complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)googleLoginWithGoogleUserId:(NSString *)googleUserId token:(NSString *)token email:(NSString * _Nullable)email complete:(void (^__nullable)(NSError * _Nullable error))complete;

+ (void)resetPasswordWithEmail:(NSString *)email password:(NSString *)password code:(NSString *)code complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)setPasswordWithEmail:(NSString *)email password:(NSString *)password code:(NSString *)code complete:(void (^__nullable)(NSError * _Nullable error))complete;

+ (void)getAccountStatus:(NSString *)email complete:(void (^__nullable)(NSInteger status, NSError * _Nullable error))complete;


+ (void)registerWithAccount:(NSString *)account password:(NSString *)password complete:(void (^__nullable)(NSError * _Nullable error))complete;

+ (void)sendResetPasswordEmailCode:(NSString *)email complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)sendRegisterEmailCode:(NSString *)email complete:(void (^__nullable)(NSError * _Nullable error))complete;

+ (void)verifyWalletOperationCodeWithEmail:(NSString *)email code:(NSString *)code complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)verifyResetPasswordCodeWithEmail:(NSString *)email code:(NSString *)code complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)verifyRegisterCodeWithEmail:(NSString *)email code:(NSString *)code complete:(void (^__nullable)(NSError * _Nullable error))complete;

+ (void)logoutComplete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)unfreezeWithEmail:(NSString *)email password:(NSString *)password complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)revokedComplete:(void (^__nullable)(NSError * _Nullable error, NSString *message))complete;
+ (void)refreshTokenComplete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)getAgreementComplete:(void (^__nullable)(NSString * _Nullable url))complete;
+ (void)loadVersionInfoComplete:(void (^__nullable)(NSDictionary * _Nullable data, NSError * _Nullable error))complete;
+ (void)loadVersionListWithPageIndex:(NSInteger)pageIndex pageSize:(NSInteger)pageSize complete:(void (^__nullable)(NSArray * _Nullable data, NSError * _Nullable error))complete;
+ (void)loadUserInfoComplete:(void (^__nullable)(HJUserModel * _Nullable userModel))complete;
+ (void)revokeCheckComplete:(void (^__nullable)(BOOL res))complete;
+ (void)loginCheckComplete:(void (^__nullable)(BOOL res, NSString *msg))complete;

+ (void)loadReportTypeListDataComplete:(void (^__nullable)(NSArray * _Nullable datas))complete;
+ (void)reportFridend:(NSString *)userId type:(NSString *)type detail:(NSString *)detail complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)loadBlacklistListDataComplete:(void (^__nullable)(NSArray <HJChatBlacklistModel *>* _Nullable datas, HJLoadType loadType))complete;
+ (void)setBacklistWithUserId:(NSString *)userId backlist:(BOOL)backlist complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)setBacklistWithUserIds:(NSArray *)userIds backlist:(BOOL)backlist complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)modifyNickname:(NSString *)nickname complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)modifyAvatar:(NSString *)avatar complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)modifyGender:(NSString *)gender complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)modifyWhatsUp:(NSString *)whatsUp complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)modifyUID:(NSString *)UID complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)modifyBirth:(NSString *)birth complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)modifyRegion:(NSString *)region complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)getRegionWithLongitude:(NSString *)longitude latitude:(NSString *)latitude complete:(void (^__nullable)(NSString * _Nullable region))complete;
+ (void)modifyProfile:(nullable NSString *)profile nickname:(nullable NSString *)nickname complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)bindGoogle:(NSString *)email token:(NSString *)token complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)bindApple:(NSString *)appleUserId token:(NSString *)token complete:(void (^__nullable)(NSError * _Nullable error))complete;

+ (void)getPrivacySettingComplete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)privacySettingWithWay:(HJAddWay)way value:(BOOL)value complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)getNoticeConfigComplete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)setNoticeConfig:(HJNoticeSettingType)type value:(BOOL)value complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)resetNoticeConfigComplete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)getKaiPayBalanceComplete:(void (^__nullable)(NSString *_Nullable balance,  NSError * _Nullable error))complete;
+ (void)kaiearmIsComplete:(void (^__nullable)(BOOL res, NSError * _Nullable error))complete;
+ (void)MPCIsAbleDestroyedComplete:(void (^__nullable)(BOOL res, NSError * _Nullable error))complete;
+ (void)sendLoginEmailCode:(NSString *)email complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)prepareOrderWithFromUserId:(NSString *)fromUserId toUserId:(NSString *)toUserId value:(NSString *)value complete:(void (^__nullable)(NSString * _Nullable orderNo, NSError * _Nullable error))complete;
+ (void)getOrderDetail:(NSString *)orderId Complete:(void (^__nullable)(NSDictionary * _Nullable orderInfo, NSError * _Nullable error))complete;
+ (void)isSetPayPasswordComplete:(void (^__nullable)(BOOL res, NSError * _Nullable error))complete;
+ (void)payWithOrderId:(NSString *)orderId password:(NSString *)password complete:(void (^__nullable)(NSDictionary * _Nullable orderInfo, NSError * _Nullable error))complete;
+ (void)getMPCWalletAddressComplete:(void (^__nullable)(NSString * _Nullable address, NSError * _Nullable error))complete;
+ (void)sendPayPasswordEmailCode:(NSString *)email complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)setPayPasswordWithEmail:(NSString *)email code:(NSString *)code password:(NSString *)password complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)sendBindingAccountWithEmailCode:(NSString *)email complete:(void (^__nullable)(NSError * _Nullable error))complete;
+ (void)bindingAccountWithEmail:(NSString *)email code:(NSString *)code complete:(void (^__nullable)(NSError * _Nullable error))complete;

+ (void)getOutsideChainDataComplete:(void (^__nullable)(NSArray <HJCellModel *> * _Nullable array))complete;
//+ (void)loadOutsideChainDataComplete:(void (^__nullable)(NSArray <HJCellModel *> * _Nullable array))complete;
+ (void)integraWaitingReceiveComplete:(void (^__nullable)(BOOL isReceive))complete;
+ (void)loadDappBookmarkListComplete:(void (^__nullable)(NSArray *array))complete;
+ (void)loadChainConfigComplete:(void (^__nullable)(NSArray *array))complete;

@end

NS_ASSUME_NONNULL_END


